/**
 * Copyright (C) 2013 Oleg Anastassov <oleg.anastassov@gmail.com>
 *
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements. See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package kz.kstu.loc.desktop.dialogs;

import kz.kstu.loc.desktop.AppConfig;
import kz.kstu.loc.desktop.icon.GUIFactory;
import kz.kstu.loc.desktop.icon.GUIIcon;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * Диалог "О программе".
 * <p/>
 * Date: 16.01.2013
 * Time: 23:36
 *
 * @author Oleg Anastassov
 */
public class AboutDialog extends ADialog {

    private static final String TITLE = "О программе..";

    private JButton okButton;

    /**
     * {@inheritDoc}
     */
    protected void initDialog() {
        setTitle(TITLE);
        setSize(new Dimension(400, 220));
        setIconImage(GUIFactory.getImage(GUIIcon.LOGO));
    }

    /**
     * {@inheritDoc}
     */
    protected void initStaticComponents() {
        JPanel info = new JPanel(new GridLayout(7, 2));
        info.setBorder(BorderFactory.createTitledBorder("Информация"));

        AppConfig config = AppConfig.getInstance();
        info.add(new JLabel("<html><b>Приложение:</b></html>"));
        info.add(new JLabel(config.getAppName()));
        info.add(new JLabel("<html><b>Версия:</b></html>"));
        info.add(new JLabel(config.getAppVersion()));
        info.add(new JLabel("<html><b>Ревизия:</b></html>"));
        info.add(new JLabel(config.getAppRevision()));
        info.add(new JLabel("<html><b>Дата сборки:</b></html>"));
        info.add(new JLabel(config.getAppBuildDate()));
        info.add(new JPopupMenu.Separator());
        info.add(new JPopupMenu.Separator());
        info.add(new JLabel("<html><b>Автор:</b></html>"));
        info.add(new JLabel(config.getAppAuthor()));
        info.add(new JLabel("<html><b>Email:</b></html>"));
        info.add(new JLabel(config.getAppEmail()));
        add(info);

        JPanel grid = new JPanel(new GridLayout(1, 2, 5, 0));
        okButton = new JButton("OK");
        grid.add(okButton);

        JPanel flow = new JPanel(new FlowLayout(FlowLayout.CENTER));
        flow.add(grid);
        add(flow, BorderLayout.SOUTH);
    }

    /**
     * {@inheritDoc}
     */
    protected void initListeners() {
        okButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                dispose();
            }
        });
    }

}
